//package com.bt.springboot.config;
//
//import lombok.extern.slf4j.Slf4j;
//import org.apache.zookeeper.WatchedEvent;
//import org.apache.zookeeper.Watcher;
//import org.apache.zookeeper.ZooKeeper;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.concurrent.CountDownLatch;
//
///**
// * @author zkx
// * @Date 2024/8/13 15:59
// */
//@Configuration
//@Slf4j
//public class ZookeeperConfig {
//
//	@Value("${zookeeper.address}")
//	private String connectString;
//	@Value("${zookeeper.timeout}")
//	private int timeout;
//
//	@Bean(name = "zkClient")
//	public ZooKeeper zkClient() {
//		ZooKeeper zooKeeper = null;
//
//		final CountDownLatch countDownLatch = new CountDownLatch(1);
//
//		// 连接成功后，会回调watcher监听，此连接是异步的，执行完new语句后，直接调用后续代码
//		// 可指定多台服务地址127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
//		try {
//			zooKeeper = new ZooKeeper(connectString, timeout, watchedEvent -> {
//				if (Watcher.Event.KeeperState.SyncConnected == watchedEvent.getState()){
//					// 如果收到了服务端的响应事件，连接成功
//					countDownLatch.countDown();
//				}
//			});
//			countDownLatch.await();
//			log.info("[初始化Zookeeper连接状态....]={}", zooKeeper.getState());
//		} catch (Exception e) {
//			log.error("[初始化ZooKeeper连接异常....]", e);
//		}
//
//		return zooKeeper;
//	}
//}
